package com.qiaofang.collectmanage.stub.facade;

import com.qiaofang.collectmanage.stub.request.*;
import com.qiaofang.collectmanage.stub.response.*;
import com.qiaofang.common.response.CommonResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.validation.Valid;

/**
 * @author li.yi
 * @date 2018年6月29日
 */
@FeignClient(name = "collectmanage",url="${feign.url.collectmanage}")
@RequestMapping("/houseagent")
@Api(tags = "houseagent", value = "房产中介接口集合")
public interface HouseAgentFacade {

	@RequestMapping(value = "/getHouseAgentByHouseAgent", method = RequestMethod.POST)
	@ApiOperation(value = "查询对象根据对象", notes = "查询对象根据对象")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "GetHouseAgentRequest") })
	public GetHouseAgentResponse getHouseAgent(GetHouseAgentRequest request);

	@RequestMapping(value = "/saveHouseAgent", method = RequestMethod.POST)
	@ApiOperation(value = "保存房产中介",notes = "保存房产中介")
	@ApiImplicitParams({@ApiImplicitParam(name="request",value="请求参数",dataType = "SaveHouseAgentRequest")})
	public CommonResponse saveHouseAgent(SaveHouseAgentRequest request);

	@RequestMapping(value = "/removeHouseAgent", method = RequestMethod.POST)
	@ApiOperation(value = "删除房产中介", notes = "删除房产中介")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "RemoveHouseAgentRequest") })
	public CommonResponse removeHouseAgent(RemoveHouseAgentRequest request);

	@RequestMapping(value = "/updateHouseAgent", method = RequestMethod.POST)
	@ApiOperation(value = "更新房产中介", notes = "更新房产中介")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "UpdateHouseAgentRequest") })
	public CommonResponse updateHouseAgent(UpdateHouseAgentRequest request);

	@RequestMapping(value = "/batchUpdateHouseAgent", method = RequestMethod.POST)
	@ApiOperation(value = "批量更新房源中的房产中介", notes = "批量更新房源中的房产中介")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "BatchUpdateHouseAgentRequest") })
	public CommonResponse batchUpdateHouseAgent(@RequestBody @Valid BatchUpdateHouseAgentRequest request);

	@RequestMapping(value = "/batchGetHouseAgentRepeat", method = RequestMethod.POST)
	@ApiOperation(value = "根据手机号批量获取相同的房产中介", notes = "根据手机号批量获取相同的房产中介")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "BatchUpdateHouseAgentRequest") })
	public BatchGetHouseAgentRepeatResponse batchGetHouseAgentRepeat(@RequestBody @Valid BatchUpdateHouseAgentRequest request);


	@RequestMapping(value = "/batchSaveHouseAgent", method = RequestMethod.POST)
	@ApiOperation(value = "批量保存房源中的房产中介", notes = "批量保存房源中的房产中介")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "BatchUpdateHouseAgentRequest") })
	public CommonResponse batchSaveHouseAgent(@RequestBody @Valid BatchUpdateHouseAgentRequest request);


	@RequestMapping(value = "/searchHouseAgentPage", method = RequestMethod.POST)
	@ApiOperation(value = "查询多个对象不包含删的分页列表", notes = "获取多个对象不包含删的分页列表")
	@ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "SearchHouseAgentPageRequest") })
	public SearchHouseAgentPageResponse searchHouseAgentPage(SearchHouseAgentPageRequest request);




}
